package com.enjoyor.soa.traffic.api.service.dubbo.bigdata;

import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

import java.util.Date;

/**
 * 尾号限行违法车辆分析
 */
public interface DubboTailLimitService {

    /**
     * 日均违法限号车辆/车次
     *
     * @param pointId     限行卡口
     * @param startTime   分析起始日期
     * @param endTime     分析截止日期
     * @param restSubject 限行主题
     * @return TailLimitDto
     */
    public ResultPojo avgTailLimitByDay(String token, String pointId, Date startTime, Date endTime, String restSubject);

    /**
     * 查询违反限号的车辆/车次的趋势、按天
     *
     * @param pointId     限行卡口
     * @param startTime   分析起始日期
     * @param endTime     分析截止日期
     * @param restSubject 限行主题
     * @return List &lt; TailLimitDto &gt;
     */
    public ResultPojo trendTailLimitByDay(String token, String pointId, Date startTime, Date endTime, String restSubject);

    /**
     * 查看违反限制车辆清单分页结果
     *
     * @param pointId 限行卡口
     * @param passDay 分析日期
     * @param page    分页
     * @return Page &lt; TailLimitDetailDto &gt; ：包含违反限制车辆信息集合 的分页集合
     */
    public ResultPojo analyzeTailLimitVeh(String token, String pointId, Date passDay, Page page);

    /**
     * 查看违反限制车辆 总记录数
     *
     * @param token
     * @param pointId 限行卡口
     * @param passDay 分析日期
     * @return 总记录数
     */
    public ResultPojo countTailLimitVeh(String token, String pointId, Date passDay);

}
